﻿#pragma once
#include<iostream>
using namespace std;
#include<stdlib.h>
#include<assert.h>

typedef int LTDateType;

typedef struct ListNode
{
	LTDateType data;
	struct ListNode* next;
	struct ListNode* prev;
}ListNode;

//定义哨兵位结点
ListNode* ListInit(ListNode* phead);

//打印链表
void ListPrint(ListNode* phead);

//尾插数据
void ListPushBack(ListNode* phead,LTDateType x);

//尾删数据
void ListPopback(ListNode* phead);

//头插数据
void ListPushPront(ListNode* phead, LTDateType x);

//头删数据
void ListPopPront(ListNode* phead);

//查找数据
ListNode* ListNodeFind(ListNode* phead, LTDateType x);

//在pos位置插入数据
void ListInsert(ListNode* pos, LTDateType x);

//在pos位置删除数据
void ListErase(ListNode* pos);

//销毁链表
void ListDestory(ListNode* phead);

//顺序表和链表优缺点总结
//顺序表
// 
//链表